﻿#include <string>
#include <vector>
#include <iostream>
#include <iterator>

#define main testmain_foo_test

///@alex:如果出现stray '\239' in program等等问题，那么一般是因为文件编码出了问题，如果是utf-8格式的编码，一定要注意转换为utf-8 无bom的格式即可

using namespace std;
int main(int argc, char * argv[])
{
	/*
	vector<int> vfoo;

	cout<<"the first input:"<<endl;
	//vfoo.assign(istream_iterator<int>(cin),istream_iterator<int>());
	copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(vfoo));
	//copy(istream_iterator<int>(cin), istream_iterator<int>(), back_insert_iterator< vector<int> >(vfoo));

	cout<<"the first output:"<<endl;
	///@alex:typename注意，这边的typename只需要在是模板类中使用的时候才需要的，否则是不能加的！！！
	for(vector<int>::const_iterator i=vfoo.begin(); i!=vfoo.end(); i++)///@alex:就是这边对于i的类型定义，是不能用typename指定的，只能在定义模板类的时候才用到
		cout<<*i<<endl;

	///@alex:第二次调用的时候是不会提示你输入的：
	//是因为在输入缓冲区里面还是存在数据的，没有被清除，所以不会提示输出
	//cout<<"the second input:"<<endl;
	//vfoo.assign(istream_iterator<int>(cin),istream_iterator<int>());
	//copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(vfoo));
	//copy(istream_iterator<int>(cin), istream_iterator<int>(), back_insert_iterator< vector<int> >(vfoo));

	//cout<<"the second input:"<<endl;
	//int t;
	//cin>>t;

	cout<<"the second output:"<<endl;
	copy(vfoo.begin(),vfoo.end(),ostream_iterator<int>(cout));

	//vector<char> vcfoo;
	//vcfoo.assign(istream_iterator<char>(cin),istream_iterator<char>());
	//copy(vcfoo.begin(),vcfoo.end(),ostream_iterator<char>(cout, "\n" ));
	//@alex:注意，这边写'\n'是不行的，一定要指明是一个char * 而不是一个char 

运行过程是：
D:\Project\nanay-broom\src\nanay-4coders\src>foo_test.exe
hello workd !
12 34 55 66
sdf ssd 23 12
^Z
h
e
l
l
o
w
o
r
k
d
!
1
2
3
4
5
5
6
6
s
d
f
s
s
d
2
3
1
2
*/

	//char in[20], in2[20];
	//scanf("%s %s", in, in2);
	//printf("%s \n %s \n",in, in2);
	//char in3[20], in4[20];
	//scanf("%s %s", in3, in4);
	//printf("%s \n %s \n", in3, in4);

	//char in5[20];
	//gets(in5);
	//printf("%s\n", in5);
	//char in6[20];
	//gets(in6);
	//printf("%s\n", in6);

	/*
	int i;
	for(;;)
	{
		fputs("please input an integer:" ,stdout);
		scanf("%d",&i);///@alex:如果是%c的话，是会保留回车符号的(如果是字符的话)，但是如果输入的是数字的话，会把数字拆开，一个一个的当做一个字符处理，同时还是保留回车符的；但是%d的话，输入的如果是数字，就会忽略回车，如果输入字符的话，也是忽略回车，但是这个时候输入的任何字符是不会被%d所认识的，因为是字符，所以会跳过，从而进入一个死循环了，所以一定要注意在每次循环中清空输入缓冲区
		printf("%d\n",i);

	}
	return 0;
	*/
	return 0;
}


